// setTimeout(function () {
//     console.log(1)
// })

// new Promise((res, rej) => {
//         console.log(2);
//         res(3);
//     }).then((val) => {
//         console.log(val);
//         return Promise.reject(4);
//     }, (error) => {
//         console.log('callback', error)
//     }).catch((error) => {
//         console.log('catch', error)
//     })


// 2
// 3
// catch ,4
// 1


var a = 'window';

var foo = {
    a: 'foo',
    getA: () => {
        console.log(this.a)
    },
    getA1() {
        console.log(this.a)
    },
    getA2: function () {
        (() => {
            console.log(this.a)
        })()
    }
}

foo.getA(); // foo
foo.getA1(); // foo
foo.getA2(); // window


// function Example() {
//     const [count, setCount] = useState(0);

//     useEffect(() => {
//         setInterval(() => {
//             setCount(count + 1)
//         }, 1000);
//     }, [])
//     return ( <div >
//         <p > You clicked {count} times </p> </div>
//     );
// }




// !--将一个节点数组中的子节点挂载到对应的节点上-- >

// let nodeArr = [
//     {
//         id: 1,
//         content: 'd'
//     },
//     {
//         id: 2,
//         parentId: 3,
//         content: 'ds'
//     },
//     {
//         id: 3,
//         parentId: 1,
//         content: 'sa'
//     },
//     {
//         id:4 ,
//         parentId: 3,
//         content: 'saga'
//     },
//     {
//         id: 5,
//         content: 'rsf'
//     }
// ]

// let newNodeArr = [
//     {
//         id: 1,
//         content: 'd',
//         children: [
//             {
//                 id: 3,
//                 parentId: 1,
//                 content: 'sa'
//             },
//         ]
//     },
//     {
//         id: 2,
//         parentId: 3,
//         content: 'ds'
//     },
//     {
//         id:4 ,
//         parentId: 3,
//         content: 'saga'
//     },
//     {
//         id: 5,
//         content: 'rsf'
//     }
// ]


// // 写出从 nodeArr 到 newNodeArr 的转换函数
// function transform(arr) {

// }